//1.导入axios
import axios from "axios";

//2.创建请求实例
const instance = axios.create({
    //控制请求超时时间
    timeout: 5000
})
/* 
//3.编写请求拦截器
instance.interceptors.request.use(
    //参数1：表示发送成功执行的函数
    (req) => {
        const token = localStorage.getItem("myToken")
        //if(token){} 等价于非空判断 !=null
        if (token) {
            //req.headers.key=value
            if (req.method === "post") {
                //处理所有的post请求
                req.headers.token = token
                //注：ss发送请求头信息 只有post请求设置 get没有请求头信息
            }
        }
        //...
        return req;
    },
    //参数2：表示发送失败执行的函数
    (error) => {
        //成功信息 Promise.resolve()
        //返回错误信息
        return Promise.reject(error)
    }
)

//4.编写响应拦截器
instance.interceptors.response.use(
    //参数1：响应成功函数
    resp => {
        return resp.status === 200 ? Promise.resolve(resp) : Promise.reject(resp)
    },
    //参数2：响应失败函数
    error => {
        const { response } = error
        errorMapping(response.status, response.info)
    }
)
 */
//5.编写一个错误信息的映射（出现什么错误 打印什么错误信息）
const errorMapping = (status: Number, info: string) => {
    switch (status) {
        case 400:
            console.log("客户端参数异常")
            break;
        case 404:
            console.log("地址有误")
            break;
        case 500:
            console.log("客户端异常")
            break;
        default:
            console.log(info)
    }
}
export default instance;
